Link to this headingFully Hashed Menezes-Qu-Vanstone (FHMQV)
Almost exactly similar to [MQV](/Crypto/Key Exchange/Elliptic-Curve Menezes-Qu-Vanstone) but uses a hash of their own public_key and the other users random point instead of the bar function.
Link to this headingImplementation
=
= 1
#Generate KeyPair Alice
, =
#Generate Alice random Point
=
= *
#Generate KeyPair Bob
, =
#Generate Bob random Point
=
= *
#HMQV uses a Hash of their own public_key and the other users random point
#This is used to replace the Bar function from MQV
=
= %
=
= %
#print(f"Alice Bar: {alice_bar}")
#print(f"Bob Bar: {bob_bar}")
#Generate Signatures
= %
= %
#Key Exchange
#Alice Side
#Ja = cofactor * alice_signature * (bob_random_point + bar(bob_random_point) * bob_public_key_point)
= +
= *
#Bob side
#Jb = cofactor * bob_signature * (alice_random_point + bar(alice_random_point) * alice_public_key_point)
= +
= *
assert ==